package com.scn.base.annotation;

import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class Test {
@Func(code="sdf",name="ssdf",sname="sdf",scode="sdf")
 public void getAraa(){
	 //Test aa=new Test();
	 
	 
 }
 public static void main(String[] args) throws ClassNotFoundException{
	//测试AnnotationTest类，得到此类的类对象
	 Class c=Class.forName("com.scn.base.annotation.Test");
	 //获取该类所有声明的方法
	 Method []methods=c.getDeclaredMethods();
	 //声明注解集合
	 Annotation[] annotations;
	 //遍历所有的方法得到各方法上面的注解信息
	 for(Method method:methods){
	 //获取每个方法上面所声明的所有注解信息
	 annotations=method.getDeclaredAnnotations();
	 //再遍历所有的注解，打印其基本信息
	 for(Annotation an:annotations){
	 System.out.println("方法名为："+method.getName()+" 其上面的注解为："+an.annotationType().getSimpleName());
	 Field[]meths1=an.annotationType().getDeclaredFields();
	 for(Field meth:meths1){
		 System.out.println("注解的变量名为："+meth.getName());
	 }
	 Method []meths=an.annotationType().getDeclaredMethods();
	 //遍历每个注解的所有变量
	 for(Method meth:meths){
		 System.out.println("注解的变量名为："+meth.getName());
	 }
	 }
	 }

	 
 }
}
